/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2023-2023. All rights reserved.
 * File name     :  hha_c_union_def.h
 * Description   :  hha 相关寄存器结构体定义
 * History       :  2023/05/04 11:05:46 Create file
 */

#ifndef HHA_C_UNION_DEFINE_H
#define HHA_C_UNION_DEFINE_H

/* HHA Register Field Segment Union definitions */
typedef union {
    struct {
        u32    ddr_intlv_baseaddr : 20; // [19..0]
        u32    ddr_intlv_size : 4; // [23..20]
        u32    ddr_intlv_ch : 3; // [26..24]
        u32    ddr_intlv_die : 1; // [27]
        u32    ddr_nonintlv_die_tgt : 1; // [28]
        u32    ddr_intlv_skt : 2; // [30..29]
        u32    msd_en : 1; // [31]
    } bits;
    u32    value;
} csr_hha_msdx_ctrl_u;

typedef union {
    struct {
        u32    totem_a_remap0 : 2; // [1..0]
        u32    totem_a_remap1 : 2; // [3..2]
        u32    totem_a_remap2 : 2; // [5..4]
        u32    totem_a_remap3 : 2; // [7..6]
        u32    totem_a_remap4 : 2; // [9..8]
        u32    totem_a_remap5 : 2; // [11..10]
        u32    totem_b_remap0 : 2; // [13..12]
        u32    totem_b_remap1 : 2; // [15..14]
        u32    totem_b_remap2 : 2; // [17..16]
        u32    totem_b_remap3 : 2; // [19..18]
        u32    totem_b_remap4 : 2; // [21..20]
        u32    totem_b_remap5 : 2; // [22..23]
        u32    skt_remap0 : 2; // [25..24]
        u32    skt_remap1 : 2; // [27..26]
        u32    skt_remap2 : 2; // [29..28]
        u32    skt_remap3 : 2; // [31..30]
    } bits;
    u32    value;
} csr_hha_msdx_map_u;

typedef union {
    struct {
        u32    dmc_intlv_addr_set_sel : 3; // [2..0]
        u32    dmc_intlv_addr_set_sel_xor : 1; // [3]
        u32    hha_intlv_addr_set_sel : 3; // [6..4]
        u32    hha_intlv_addr_set_sel_xor : 1; // [7]
        u32    die_intlv_addr_set_sel : 3; // [10..8]
        u32    die_intlv_addr_set_sel_xor : 1; // [11]
        u32    skt_intlv_addr_set_sel : 3; // [14:12]
        u32    skt_intlv_addr_set_sel_xor : 1; // [15]
        u32    Reserved_0 : 16; // [31..16]
    } bits;
    u32    value;
} csr_hha_ddrintlv_addr_u;

#endif
